#pragma once

#include "DD_SvrNetSDK.h"

class DDSvrNetCfg
{
public:
	DDSvrNetCfg(void);
	~DDSvrNetCfg(void);

public:
	int RegCheckUserCallBack(SvrNetCheckUserCBFun funCallBack,void *pContext);
    int RegCheckUserRightCallBack(SvrNetCheckUserRightCBFun funCallBack,void *pContext);

	int RegSetConfigCallBack(SvrNetSetConfigCBFun funCallBack,void *pContext);
	int RegGetConfigCallBack(SvrNetGetConfigCBFun funCallBack,void *pContext);

	int RegStartSearchCallBack(SvrNetStartSearchCBFun funCallBack,void *pContext);
	int RegStopSearchCallBack(SvrNetStopSearchCBFun funCallBack,void *pContext);

	int RegfwOpenCallBack(SvrNetfwOpenCBFun funCallBack,void *pContext);
	int RegfWriteCallBack(SvrNetfWriteCBFun funCallBack,void *pContext);
	int RegfwCloseCallBack(SvrNetfwCloseCBFun funCallBack,void *pContext);
	int RegfrOpenCallBack(SvrNetfrOpenCBFun funCallBack,void *pContext);
	int RegfReadCallBack(SvrNetfReadCBFun funCallBack,void *pContext);
	int RegfrCloseCallBack(SvrNetfrCloseCBFun funCallBack,void *pContext);

public:
	BOOL CheckCallBack();


public:
	struct stCheckUser
	{
		SvrNetCheckUserCBFun funCallBack;
		void                *pContext;
	};
	stCheckUser m_xCheckUser;

	struct stCheckUserRight
	{
		SvrNetCheckUserRightCBFun funCallBack;
		void                     *pContext;
	};
	stCheckUserRight m_xCheckUserRight;

	struct stSetConfig
	{
		SvrNetSetConfigCBFun funCallBack;
		void                *pContext;
	};
	stSetConfig m_xSetConfig;

	struct stGetConfig
	{
		SvrNetGetConfigCBFun funCallBack;
		void                *pContext;
	};
	stGetConfig m_xGetConfig;

	struct stStartSearch
	{
		SvrNetStartSearchCBFun funCallBack;
		void              *pContext;
	};
	stStartSearch m_xStartSearch;

	struct stStopSearch
	{
		SvrNetStopSearchCBFun funCallBack;
		void              *pContext;
	};
	stStopSearch m_xStopSearch;

	//
	struct stfwOpen
	{
		SvrNetfwOpenCBFun funCallBack;
		void              *pContext;
	};
	stfwOpen m_xfwOpen;
	
	struct stfWrite
	{
		SvrNetfWriteCBFun funCallBack;
		void              *pContext;
	};
	stfWrite m_xfWrite;

	struct stfwClose
	{
		SvrNetfwCloseCBFun funCallBack;
		void               *pContext;
	};
	stfwClose m_xfwClose;

	struct stfrOpen
	{
		SvrNetfrOpenCBFun funCallBack;
		void              *pContext;
	};
	stfrOpen m_xfrOpen;

	struct stfRead
	{
		SvrNetfReadCBFun funCallBack;
		void              *pContext;
	};
	stfRead m_xfRead;

	struct stfrClose
	{
		SvrNetfrCloseCBFun funCallBack;
		void               *pContext;
	};
	stfrClose m_xfrClose;


};